package com.regex;

public class RegexDemo {
    /*
        1.字符类:
        [abc]   只能是a，b，或c I
        [^abc]        除了a，b，c之外的任何字符
        [a-zA-Z]  a到Z A到Z，包括(范围)
        [a-d[m-p]]  a到d，或m通过p:([a-dm-p]联合)
        [a-z&&[def]] d，e，或f(交集)
        [a-z&&[^bc]]    a到2，除了b和c:([ad-z]减法)
        [a-z&&[^m-p]]    a到z，除了m到p:([a-lq-z]减法)
     */

    /*
        2.预定义字符类:
        .     任何字符
        \d    一个数字:[0-9]
        \D    非数字:[^0-9]
        \s    一个空白字符:[\t\n\x0B\f\r]
        \S    非空白字符:[^\s]
        \w    [a-zA-2_0-9]英文、数字、下划线
        \W    [^\w]一个非单词字符
     */
    /*
        3.数量:
        X? 一次或0次
        X* 零次或多次(任意次数)
        X+ 一次或多次
        X{n}正好n次
        X{n，} 至少n次
        X{n,m} X，至少n但不超过m次
     */
    public static void main(String[] args) {
        String regex="[abc]";
        System.out.println("a".matches(regex));
        String regex2="\\d*";
        System.out.println("1234".matches(regex2));
        /*
        1.QQ号正则
            不能以0开头
            全部都是数字
            5~12位
        2.手机号正则
            必须是1开头
            第二位:3456789
            全都是数字，必须是11位
        3.邮箱正则
            zhangSan@itcast.cn
            zhangsan@163.com
            123456@qq.com
            zhangsan@sina.com
            zhangsan@itcast.gg.com
            zhangsan@xxx.edu
            zhangsan@xxx.0rg
         */
        String qqRegex="[1-9]\\d{4,11}";
        System.out.println("2303070970".matches(qqRegex));
        String telRegex="[1][3-9]\\d{9}";
        System.out.println("19979313969".matches(telRegex));
        String emailRegex="\\w+[@][\\w&&[^_]]+(\\.[a-z]{2,3})+";

        String s="123456@qq.com";
        // 正则替换
        s=s.replaceAll("\\d","");
        System.out.println(s);
    }
}
